Simple Executions of Snapshot Implementations
نویسندگان
چکیده
The well known snapshot primitive in concurrent programming allows for n-asynchronous processes to write values to an array of single-writer registers and, for each process, to take a snapshot of these registers. In this paper we provide a formulation of the well known linearizability condition for snapshot algorithms in terms of the existence of certain mathematical functions. In addition, we identify a simplifying property of snapshot implementations we call “schedule-based algorithms”. This property is natural to assume in the sense that as far as we know, every published snapshot algorithm is schedule-based. Based on this, we prove that when dealing with schedule-based algorithms, it suffices to consider only a small class of very simple executions to prove or disprove correctness in terms of linearizability. We believe that the ideas developed in this paper may help to design automatic verification of snapshot algorithms. Since verifying linearizability was recently proved to be EXPSPACEcomplete, focusing on unique objects (snapshot in our case) can potentially lead to designing restricted, but feasible verification methods.
منابع مشابه
A Non-topological Proof for the Impossibility of k-Set Agreement
In the k-set agreement task each process proposes a value, and it is required that each correct process has to decide a value which was proposed and at most k distinct values must be decided. Using topological arguments it has been proved that k-set agreement is unsolvable in the asynchronous wait-free read/write shared memory model, when k < n, the number of processes. This paper presents a si...
متن کاملFast Implementations of Shared Objects using Fetch&Add
In this paper we present efficient implementations of shared objects from Fetch&Add registers. We present the first snapshot implementation which has time complexity O(1) for both scan and update. Using this implementation we can directly obtain an active set with constant time complexity for all three operations, join, leave and getSet. We also present the first universal construction which ha...
متن کاملPerformance of program modification techniques that ensure serializable executions with snapshot isolation DBMS
Snapshot Isolation (SI) is a multiversion concurrency control that has been implemented by several open source and commercial database systems (Oracle, PostgreSQL, Microsoft SQL Server). The main feature of SI is that a read operation does not block a write operation and vice versa, which allows higher degree of concurrency than traditional two-phase locking. SI prevents many anomalies that app...
متن کاملSimple Wait-Free Snapshots for Real-Time Systems with Sporadic Tasks1
A wait-free algorithm for implementing a snapshot mechanism for real-time systems is presented in this paper. Snapshot mechanisms give the means to a real-time task to read a globally consistent set of variable values while other concurrent tasks are updating them. Such a mechanism can be used to solve a variety of communication and synchronisation problems, including system monitoring and cont...
متن کاملSerializable Executions with Snapshot Isolation: Modifying Application Code or Mixing Isolation Levels?
Snapshot Isolation concurrency control (SI) allows substantial performance gains compared to holding commit-duration readlocks, while still avoiding many anomalies such as lost updates or inconsistent reads. However, for some sets of application programs, SI can result in non-serializable execution, in which database integrity constraints can be violated. The literature reports two different ap...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- CoRR
دوره abs/1502.02991 شماره
صفحات -
تاریخ انتشار 2015